package com.hsgene.product.dto.wechat;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hsgene.common.util.date.TimeJsonDeserializer;
import com.hsgene.common.util.qiniu.QiniuResourceSerializer;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 商品列表项DTO
 *
 * @author wangbing
 * @version 1.0, 2018/10/11
 */
public class SimpleCommodityDto implements Serializable {

    /**
     * 逻辑主键id
     */
    private String id;

    /**
     * 商品id
     */
    private String packageId;

    /**
     * 商品名称
     */
    private String commodityName;

    /**
     * 商品图片
     */
    @JsonSerialize(using = QiniuResourceSerializer.class)
    private String commodityImagesUrl;

    /**
     * 折扣标签Tags
     */
    private List<String> discountTags;

    /**
     * 商品原始价格
     */
    private BigDecimal originPrice;

    /**
     * 商品优惠价格
     */
    private BigDecimal discountPrice;

    /**
     * 商品展示价格
     */
    private BigDecimal showPrice;

    /**
     * 商品总购买数
     */
    private int totalPurchaseAmount = 0;

    /**
     * 商品类目id
     */
    private String commodityCategoryId;

    /**
     * 商品类目标签
     */
    private String commodityCategoryLabel;

    /**
     * 商品创建时间
     */
    @JsonDeserialize(using = TimeJsonDeserializer.class)
    private Date createDateTime;

    /**
     * 上架状态(0-下架  1-上架）
     */
    private Integer shelfStatus;

    /**
     * 是否勾选 0－未勾选  1-已经勾选
     */
    private Integer checked;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPackageId() {
        return packageId;
    }

    public void setPackageId(String packageId) {
        this.packageId = packageId;
    }

    public String getCommodityName() {
        return commodityName;
    }

    public void setCommodityName(String commodityName) {
        this.commodityName = commodityName;
    }

    public String getCommodityImagesUrl() {
        return commodityImagesUrl;
    }

    public void setCommodityImagesUrl(String commodityImagesUrl) {
        this.commodityImagesUrl = commodityImagesUrl;
    }

    public List<String> getDiscountTags() {
        return discountTags;
    }

    public void setDiscountTags(List<String> discountTags) {
        this.discountTags = discountTags;
    }

    public BigDecimal getOriginPrice() {
        return originPrice;
    }

    public void setOriginPrice(BigDecimal originPrice) {
        this.originPrice = originPrice;
    }

    public BigDecimal getDiscountPrice() {
        return discountPrice;
    }

    public void setDiscountPrice(BigDecimal discountPrice) {
        this.discountPrice = discountPrice;
    }

    public BigDecimal getShowPrice() {
        return showPrice;
    }

    public void setShowPrice(BigDecimal showPrice) {
        this.showPrice = showPrice;
    }

    public int getTotalPurchaseAmount() {
        return totalPurchaseAmount;
    }

    public void setTotalPurchaseAmount(int totalPurchaseAmount) {
        this.totalPurchaseAmount = totalPurchaseAmount;
    }

    public String getCommodityCategoryId() {
        return commodityCategoryId;
    }

    public void setCommodityCategoryId(String commodityCategoryId) {
        this.commodityCategoryId = commodityCategoryId;
    }

    public String getCommodityCategoryLabel() {
        return commodityCategoryLabel;
    }

    public void setCommodityCategoryLabel(String commodityCategoryLabel) {
        this.commodityCategoryLabel = commodityCategoryLabel;
    }

    public Date getCreateDateTime() {
        return createDateTime;
    }

    public void setCreateDateTime(Date createDateTime) {
        this.createDateTime = createDateTime;
    }

    public Integer getShelfStatus() {
        return shelfStatus;
    }

    public void setShelfStatus(Integer shelfStatus) {
        this.shelfStatus = shelfStatus;
    }

    public Integer getChecked() {
        return checked;
    }

    public void setChecked(Integer checked) {
        this.checked = checked;
    }
}
